# encoding: utf-8
# @author: luzhangdan
# @file: client.py
# @time: 2021/10/19 14:22

import requests
from common.logger import GetLogger

logger = GetLogger().get_logger()


class RequestClient:
    def __init__(self):
        # 初始化session，自动关联session
        self.session = requests.session()

    def send_request(self, method, url, headers=None, params=None, data=None, files=None, json=None, **kwargs):
        """
        发送请求
        :param method:  请求方法
        :param url:  请求url
        :param headers:  请求headers
        :param params:  get使用的关键字
        :param data: post请求，以表单的形式使用的关键字
        :param files: 上传文件使用的关键字
        :param json: json格式使用的关键字
        :param kwargs:  未知不定长参数，key value形式
        :return: 请求的响应体
        """
        logger.info("开始发起请求！")
        logger.info(f"method的值是：{method}")
        logger.info(f"url的值：{url}")
        logger.info(f"headers的值：{headers}")
        logger.info(f"params的值：{params}")
        logger.info(f"data的值：{data}")
        logger.info(f"files的值：{files}")
        logger.info(f"json的值：{json}")
        for k, v in kwargs.items():
            logger.info(f"key的值是：{k}, value的值是：{v}")
        response = self.session.request(method, url, headers=headers, params=params, data=data, files=files, json=json,
                                        **kwargs)
        logger.info(f"相应的状态码是：{response.status_code}")
        logger.info(f"接口的响应值是：{response.text}")
        return response
